define(function (require) {
var zsApp = require('app');    
zsApp.service('selectCache', ['$rootScope', '$http', 'promptCache', function($rootScope, $http, promptCache) {
    
    var choseArr=[];                                 // 定义数组用于存放前端显示
    var str="";
    var flag='';                                     // 是否点击了全选，是为yes
    var isSelectAll = false;                         // 默认未选中
    var master = false;

    // 全选
    this.selectAll = function (bool, obj) { 

        if( bool == true ) { 
            isSelectAll = true;
            choseArr = angular.copy(obj);
            flag = 'yes';
        }else {
            isSelectAll = false;
            choseArr = [];
            flag = 'no';
        }
    };

    // 多选
    this.select = function (selectObj, bool, len) { 

        if(flag == 'yes') {                             // 在全选的基础上操作
                            
            str = choseArr.join(',') + ',';

        }
        if(bool == true) {                              // 选中

            str = str + selectObj + ',';
            flag='c'
            if(choseArr.length==len-1) {
                master=true;
            }

        }
        else {
            str = str.replace(selectObj + ',', '');     // 取消选中
        }

        choseArr=(str.substr(0,str.length-1)).split(','); 
        var dex=choseArr.indexOf('');            // 判断数组中有没有"",有的话返回值大于等于0，没有返回-1
        if(dex>=0) {
            choseArr.splice(dex,1);              // 删除数组中的"";
        };
        if(choseArr.length==0) {
            master=false;
        };
    };

    // 删除（校验是否有选择）
    this.check = function() {
        if(choseArr[0]==''||choseArr.length==0) {            // 没有选择一个的时候提示
            promptCache.errorPrompt('请至少选中一条数据操作！');
            return false;
        }else {
            $('#delete').modal('show');
        }
    };

    // 删除
    this.delete = function (whichId, whichUrl) {

        var deleteID = [];

        for(var i=0;i<choseArr.length;i++) { 
            deleteID.push(choseArr[i]);
        };

        var deleteId = { [whichId] : deleteID  };

        $http
        ({
            url     : $rootScope.zsUrl+'digitalhome-boss/'+whichUrl,
            method  : 'POST',
            data    : deleteId,

        }).success(function(res) {
            if( res.result_code != '0000' ) {
                promptCache.errorPrompt('删除失败！');
                return false;
            }else {
                promptCache.successPrompt('删除成功！');
            }
        }).error(function(err) {
            promptCache.errorPrompt('删除失败！');
        });

        // empty array
        str = "";
        choseArr = [];
    };

    // 启用 禁用
    this.isEnable = function(whichId, whichUrl, whichBtn) {

        // select checkbox id
        var isEnableID = [];
        // enable(1) disabled(0) 
        var status = [];
        if(choseArr[0]==''||choseArr.length==0) {            // 没有选择一个的时候提示
            promptCache.errorPrompt('请至少选中一条数据操作！');
            return false;
        };
        
        for(var i=0;i<choseArr.length;i++) { 
            isEnableID.push(choseArr[i]);
        };
        
        // enable button or disabled button
        whichBtn==1?status.push('1'):status.push('0');

        // need submit id enabled
        var isEnableId = { [whichId] : isEnableID, enabled : status };

        $http
        ({
            url     : $rootScope.zsUrl+'digitalhome-boss/'+whichUrl,
            method  : 'POST',
            data    : isEnableId,

        }).success(function(res) {

            if( res.result_code != '0000' ) {
                
                if( 0 == isEnableId.enabled[0] ) {
                    promptCache.errorPrompt('禁用失败！');
                }
                else if( 1 == isEnableId.enabled[0] ) {
                    promptCache.errorPrompt('启用失败！');
                }
                return false;

            }else {

                if( 0 == isEnableId.enabled[0] ) {
                    promptCache.successPrompt('禁用成功！');
                }
                else if( 1 == isEnableId.enabled[0] ) {
                    promptCache.successPrompt('启用成功！');
                }
            }

        }).error(function(err) {
            
            if( 0 == isEnableId.enabled[0] ) {
                promptCache.errorPrompt('禁用失败！');
            }
            else if( 1 == isEnableId.enabled[0] ) {
                promptCache.errorPrompt('启用失败！');
            }

        });

        // empty array
        str = "";
        choseArr = [];        
    };

}]);
});